package com.jandn.media.action;

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

public class ChatUtil {
	
	private static boolean temp = true;
	
	synchronized public static boolean getTemp() {
		if(temp){
			temp = false;
			return true;
		}
		return temp;
	}

	synchronized public static void closeTemp() {
		temp = true;
	}
	
	
	private static List<ChatDTO> cache = null;
	
	private static List<ChatDTO> getCache(){
		if(cache == null){
			cache = new Vector<ChatDTO>();
		}
		return cache;
	}
	
	private static void clearCache() {
		if(getCache().size()>500){
			for(int i=0;i<100;i++){
				getCache().remove(0);
			}
		}
	}
	
	public static void insertIntoCache(ChatDTO dto) {
		while(!getTemp()){}
		clearCache();
		int i = getCache().size();
		if(i==0){
			dto.setUuid(0);
		}else{
			dto.setUuid(cache.get(i-1).getUuid()+1);
		}
		cache.add(dto);
		closeTemp();
	}
	
	public static List<ChatDTO> selectFormCache(String nickname,int uuid) {
		while(!getTemp()){}
		List<ChatDTO> list = new ArrayList<ChatDTO>();
		for(ChatDTO dto:getCache()){
			if(!dto.getNickname().equals(nickname) && uuid<dto.getUuid()){
				list.add(dto);
			}
		}
		closeTemp();
		return list;
	}
	
}
